// pages/vidio/vidio.js

import request from '../../utils/request'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    videoGroupList: [], //导航标签数据
    navId: 58100,
    videoList: [],
    scrollLeft:"",
    videoId:"",//视频id标识
    videoUpdateTime:[],//记录video播放时长
    isTruggered:false
  },
  //获取导航数据
  async getVideoGroupListData() {
    let VideoGroupListData = await request("/video/group/list")
    this.setData({
      videoGroupList: VideoGroupListData.data.data.slice(0, 14)
    })
  },
  //点击导航的回调
  changeNav(event) {
    let navId = event.currentTarget.id;
    this.setData({
      navId
    })
    wx.showLoading({
      title: '正在加载',
    })
    this.getVideoList(navId) 
  },
  //获取视频列表
  async getVideoList(navId,offset=0) {
    let result = await request("/video/group", {
      id: navId,
      offset
    })
 
    let videoList = await Promise.all(
      result.data.datas.map(async item => {
        let result = await request("/video/url", {
          id: item.data.vid
        })
        item.userInfo = result.data.urls[0]
        console.log(item, "item");
        return item
      })
    )

     wx.hideLoading()


    let index = 0;
     videoList=result.data.datas.map(item=>{
       item.id=index++;
       return item
     })
    this.setData({
      videoList,
      isTruggered:false //关闭下拉刷新
    })
  },
  //点击播放/继续的回调
  handlePlay(event){
     let vid=event.currentTarget.id;
 
     this.setData({
      videoId:vid
     })
     //关闭上一个播放的视频
    //  this.vid!==vid && this.videosContext && this.videoContext.stop();
    //  this.vid=vid; 
   
     //创建控制video标签的实例对象
     this.videosContext=wx.createVideoContext(vid)
     //判断当前商品之前是否播放过,如果有跳转至指定的播放位置
     let {videoUpdateTime} =this.data;
     let videoItem =videoUpdateTime.find(item=>item.vid==vid)
     if(videoItem){
       this.videosContext.seek(videoItem.currentTime)
     }
     this.videosContext.play()
  },
  //视频结束后回调
  handleEnded(event){
    //移除记录播放时长
    let {videoUpdateTime}=this.data;
    videoUpdateTime.splice(videoUpdateTime.findIndex(item=>item.vid==(event.currentTarget.id)),1)
    this.setData({
      videoUpdateTime
    })
  },
  //获取播放时间
  handleTimeUpdate(event){
    console.log("asdasd");
    let videoTimeObj={vid:event.currentTarget.id,currentTime:event.detail.currentTime}
    let {videoUpdateTime} =this.data;
    /*
    判断记录时长的videoUpdateTime数组中是否有当前商品的播放记录
    1.如果有，在原有的播放记录中修改播放时间为当前的播放时间
    2.如果没有，需要在数组中添加当前视频的播放对象
    */
   let videoItem =videoUpdateTime.find(item=>item.vid==videoTimeObj.vid)
  
  if(videoItem)//之前有
  {
videoItem.currentTime=event.detail.currentTime;
  }//之前么有
  else{
      videoUpdateTime.push(videoTimeObj)
  }
  //更新
  this.setData({
    videoUpdateTime
  })
},
  //下拉刷新
  handleRefresher(){
    this.getVideoList(this.data.navId)
  },
  //上拉刷新
  handleToLower(){
this.getVideoList(this.data.navId,1)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getVideoGroupListData()
    this.getVideoList(this.data.navId)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})